package com.techsoul.module.order.pojo.param;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;

import java.util.Date;
import java.util.List;

/**
 * 采购订单 保存参数
 * 
 * @author liuen
 * @date 2022-08-10
 */
@Data
@Accessors(chain = true)
public class PurchaseOrderSaveParam implements Serializable {

    private static final long serialVersionUID = 1L;
    private String id;
    private List<PurchaseOrderItemSaveParam> itemList;
    @ApiModelProperty(value = "单号")
    private String purchaseOrderNo;
    /**
     * 合同编号
     */
    @ApiModelProperty("是否加急")
    private String IsHotYn;
    @ApiModelProperty("是否保险")
    private String insureYn;
    @ApiModelProperty("需要的车型")
    private String requestVehicleModel;
    @ApiModelProperty("发货结算基于")
    private String settledBasedOn;
    @ApiModelProperty("发货地址")
    private String pickUpAddress;
    @ApiModelProperty("目的地编码")
    private String destination;
    @ApiModelProperty("出发地")
    private String departureName;
    @ApiModelProperty("目的地")
    private String destinationName;
    @ApiModelProperty("出发地编码")
    private String departure;
    @ApiModelProperty("装货")
    private String pickUpWarehouseNo;
    @ApiModelProperty("卸货")
    private String dropOffWarehouseNo;
    @ApiModelProperty("中转")
    private String transitWarehouseNo;
    @ApiModelProperty("预计送货天数")
    private Integer estDeliveryDays;
    @ApiModelProperty(value = "合同编号")
    private String contractNo;
    @ApiModelProperty(value = "域")
    private String site;
    @ApiModelProperty(value = "长短途")
    private String shipmentTypeNo;
    @ApiModelProperty(value = "税")
    private Double payTax;
    @ApiModelProperty(value = "整车")
    private String freightOrderTypeNo;
    @ApiModelProperty(value = "含税价")
    private Double priceWithTax;
    @ApiModelProperty(value = "出发")
    private String departCity;
    @ApiModelProperty(value = "服务类型")
    private String freightServiceType;
    @ApiModelProperty(value = "附加费")
    private Double addOnFee;
    @ApiModelProperty(value = "收货域")
    private String receiverSite;
    @ApiModelProperty(value = "入库库编码")
    private String inWarehouseCode;
    @ApiModelProperty(value = "freightSettleBasedon")
    private String freightSettleBasedon;
    @ApiModelProperty(value = "freightBlancetype")
    private String freightBlancetype;
    @ApiModelProperty(value = "freightPaymenttype")
    private String freightPaymenttype;
    @ApiModelProperty(value = "freightTransportType")
    private String freightTransportType;
    @ApiModelProperty(value = "发货人")
    private String shipperName;

    /**
     * 外部合同编号
     */
    @ApiModelProperty(value = "外部合同编号")
    private String outsideContractNo;
    @ApiModelProperty(value = "收货人电话")
    private String consigneePhone;
    /**
     * 外部计划编号
     */
    @ApiModelProperty(value = "外部计划编号")
    private String outsidePlanNo;

    /**
     * 备货通知书编号
     */
    @ApiModelProperty(value = "备货通知书编号")
    private String stockNoticeNo;

    /**
     * 数量
     */
    @ApiModelProperty(value = "数量")
    private BigDecimal quantity;

    /**
     * 已派单粗算数量
     */
    @ApiModelProperty(value = "已派单粗算数量")
    private BigDecimal assignedQuantity;

    /**
     * 实际已分派数量
     */
    @ApiModelProperty(value = "实际已分派数量")
    private BigDecimal distributeQuantity;

    /**
     * 已交货签收数量
     */
    @ApiModelProperty(value = "已交货签收数量")
    private BigDecimal deliveryQuantity;

    /**
     * 货物单价
     */
    @ApiModelProperty(value = "货物单价")
    private BigDecimal orderUnitPrice;

    /**
     * 物流合同运费单价
     */
    @ApiModelProperty(value = "物流合同运费单价")
    private BigDecimal tradeTransportUnitPrice;

    /**
     * 货物名称
     */
    @ApiModelProperty(value = "货物名称")
    private String materialName;

    /**
     * 物流公司名称
     */
    @ApiModelProperty(value = "物流公司名称")
    private String carrier;

    /**
     * 物流公司编号
     */
    @ApiModelProperty(value = "物流公司编号")
    private String carrierNo;

    private String company;

    /**
     * 卖方
     */
    @ApiModelProperty(value = "卖方")
    private String vendor;

    /**
     * 卖方在系统中的编号
     */
    @ApiModelProperty(value = "卖方在系统中的编号")
    private String vendorNo;

    /**
     * 买方
     */
    @ApiModelProperty(value = "买方")
    private String buyer;

    /**
     * 买方在系统中的编号
     */
    @ApiModelProperty(value = "买方在系统中的编号")
    private String buyerNo;

    /**
     * 场站编号
     */
    @ApiModelProperty(value = "场站编号")
    private String siteId;

    /**
     * 场站全称
     */
    @ApiModelProperty(value = "场站全称")
    private String siteFullName;

    /**
     * 附加信息
     */
    @ApiModelProperty(value = "附加信息")
    private String additionInfo;

    /**
     * 买方提货凭证
     */
    @ApiModelProperty(value = "买方提货凭证")
    private String pickupVoucherList;

    /**
     * 交货地址
     */
    @ApiModelProperty(value = "交货地址")
    private String deliveryAddress;

    private String deliveryTerms;

    private String deliveryTermsDesc;

    private Date changeDate;

    private Date orderApplyDate;

    /**
     * 提货开始日期
     */
    @ApiModelProperty(value = "提货开始日期")
    private Date pickupStartDate;

    /**
     * 期待收货日期
     */
    @ApiModelProperty(value = "期待收货日期")
    private Date expectReceiptDate;

    private String consigneeName;

    private String paymentTermNo;

    private String destinationNo;

    /**
     * 物流计划状态
     */
    @ApiModelProperty(value = "物流计划状态")
    private String status;

    /**
     * 交易端备货计划状态
     */
    @ApiModelProperty(value = "交易端备货计划状态")
    private String tradeOrderStatus;

    /**
     * 取消原因
     */
    @ApiModelProperty(value = "取消原因")
    private String cancelReason;

    /**
     * 是否被取消
     */
    @ApiModelProperty(value = "是否被取消")
    private Boolean cancelled;

    private BigDecimal version;

    /**
     * 交货城市
     */
    @ApiModelProperty(value = "交货城市")
    private String deliveryCity;

    private BigDecimal sourceOrderId;

    private String customerNo;

    /**
     * 提货城市
     */
    @ApiModelProperty(value = "提货城市")
    private String pickupCity;

    /**
     * 提货地址
     */
    @ApiModelProperty(value = "提货地址")
    private String pickupAddress;

    private String supplierCompanyNo;

    /**
     * 提货联系人手机号
     */
    @ApiModelProperty(value = "提货联系人手机号")
    private String pickupContactMobile;

    private String consigneeId;

    /**
     * 交货联系人手机号
     */
    @ApiModelProperty(value = "交货联系人手机号")
    private String deliveryContactMobile;

    private String supplierName;

    private String companyName;

    /**
     * 备注
     */
    private String remark;

    /**
     * 是否有效，数据字典 yn_type，1 表示是，0 表示否，默认0
     */
    private String isValid;

}
